/**
 * 1. 启动 HTTP 服务, 端口为 8080
 * 2. 浏览器发送 GET  /goods 显示商品列表的表格. 数据是放在数据库中
 */
//导入 express
const express = require("express");
//导入
const db = require("./db/db");
const GoodsModel = require("./models/GoodsModel");

db(() => {
  //这里才可以操作数据库
  //创建应用对象
  const app = express();
  //配置静态资源的目录
  app.use(express.static("./public"));
  //配置模板引擎
  app.set('view engine', 'ejs');
  app.set('views' ,'./views');

  //创建路由规则
  app.get("/home", (req, res) => {
    res.send("网站首页");
  });

  //显示商品内容
  app.get("/goods", (req, res) => {
    //读取所有的商品
    GoodsModel.find()
      .limit(10)
      .exec((err, data) => {
        //判断
        if (err) {
          res.status(500);
          return res.send("数据库连接异常");
        }
        //渲染模板
        res.render('goods', {data});
      });
  });

  //显示商品列表
  app.get('/shangpin', (req, res) => {
    res.render('shangpin');
  });

  //声明一个接口   返回商品的 JSON 数据
  app.get('/api/goods', (req, res) => {
    //
    GoodsModel.find().limit(10).exec((err, data) => {
      //读取失败的情况
      if(err){
        return res.status(500).send('数据库操作失败~~');
      }
      //响应 JSON 数据
      res.json(data);
    })
  })

  //启动服务
  app.listen(8080, () => {
    console.log("waiting for connection on port 8080");
  });
});
